package com.qf.ssm.mapper;

import com.qf.ssm.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserMapper {

    void addUser(User user);

    User findUserById(Long id);

    /**
     * 按照用户名和密码查询,一般不用,因为密码是散列值,原始内容查询一定查询不到
     * @param username
     * @param password
     * @return
     */
    User findUserByNameAndPwd(String username, String password);

    /**
     * 按照用户名查询用户信息,更多的使用方式
     * @param username
     * @return
     */
    @Select("SELECT * from user WHERE username =#{username}")
    User findUserByName(String username);

    /**
     * 更新用户
     * @param user
     * @return
     */
    int updateUser(User user);

    /**
     * 删除用户,实际上是将用户的状态更新掉
     * @param id
     * @return
     */
    int deleteUser(Long id);

    /**
     * 按照用户名或者状态查询, 用户名和状态都可以不传递
     * @param username
     * @param status
     * @return
     */
    List<User> findUsersByNameLikeWithStatusEquals(String username, Integer status);

    List<User>findAllUsers();

    int deleteUsersByIds(@Param("ids")List<Long>ids);


}
